<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {

	// Constructor de Clase
	function __construct() {
		parent::__construct();

		$this->load->library('usuarioLib');
		$this->load->model('Model_Usuario');

		$this->form_validation->set_message('required', 'Debe ingresar un valor para %s');
		$this->form_validation->set_message('loginok', 'Usuario o clave incorrectos');
		$this->form_validation->set_message('matches', '%s no coincide con %s');
		$this->form_validation->set_message('cambiook', 'No se puede realizar el cambio de clave');
		$this->form_validation->set_message('valid_email', 'Campo %s no es un eMail valido');
		$this->form_validation->set_message('my_validation', 'Existe otro registro con el mismo nombre');
	}

	public function index() {
		$data['contenido'] = 'home/index';
		$data['titulo'] = 'Inicio';
		$this->load->view('template', $data); //carga vista
	}

	public function acerca_de() {
		$data['contenido'] = 'home/acerca_de';
		$data['titulo'] = 'Acerca De';
		$this->load->view('template', $data);
	}

	public function acceso_denegado() {
		$data['contenido'] = 'home/acceso_denegado';
		$data['titulo'] = 'Denegado';
		$this->load->view('template', $data);
	}

	 public function registrar() {
        $data['contenido'] = 'home/registrarse';
        $data['titulo'] = 'Crear Cuenta';
        $this->load->view('template', $data);
    }

    public function crear() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('name', 'Nombre', 'required');
        $this->form_validation->set_rules('login', 'Login', 'required|callback_my_validation');
        $this->form_validation->set_rules('email', 'eMail', 'required|valid_email');
        if ($this->form_validation->run() == FALSE) {
            $this->registrar();
        }
        else {
			$registro['password'] = md5($registro['login']); // Por defecto misma login y pwd
			$registro['created'] = date('Y/m/d H:i');
			$registro['updated'] = date('Y/m/d H:i');
			$this->Model_Usuario->insert($registro);
			$this->ingreso();
        }
	}

	public function my_validation() {
		return $this->usuariolib->my_validation($this->input->post());
	}

	public function ingreso() {
		$data['contenido'] = 'home/ingreso';
		$data['titulo'] = 'Ingreso';
		$this->load->view('template', $data);
	}

	public function ingresar() {
		$this->form_validation->set_rules('login', 'Usuario', 'required|callback_loginok');   //venir de la vista con datos e ingresar con el post
		$this->form_validation->set_rules('password', 'Clave', 'required');
		if($this->form_validation->run() == FALSE) {										//valido
			$this->ingreso();																//carga una vista (la ista ingreso nuevamente que esta arriba)
		}
		else {
			redirect('home/index');															//sino redirecciona al index
		}
	}

	public function loginok() {
		$login = $this->input->post('login');
		$password = $this->input->post('password');
		return $this->usuariolib->login($login, md5($password));
	}

	public function salir() {
		$this->session->sess_destroy();
		redirect('home/index');
	}

	public function cambio_clave() {
		$data['contenido'] = 'home/cambio_clave';
		$data['titulo'] = 'Cambiar Clave';
		$this->load->view('template', $data);
	}

	public function cambiar_clave() {
		$this->form_validation->set_rules('clave_act', 'Clave Actual', 'required|callback_cambiook');
		$this->form_validation->set_rules('clave_new', 'Clave Nueva', 'required|matches[clave_rep]');
		$this->form_validation->set_rules('clave_rep', 'Repita Nueva', 'required');
		if($this->form_validation->run() == FALSE) {
			$this->cambio_clave();
		}
		else {
			redirect('home/index');
		}
	}

	public function cambiook() {
		$act = $this->input->post('clave_act');
		$new = $this->input->post('clave_new');
		return $this->usuariolib->cambiarPWD(md5($act), md5($new));
	}

}
